import { defineStore } from 'pinia'
import { ref } from 'vue'

/**
 * 用户认证 Token 状态管理
 * 使用 Pinia 持久化存储 token 信息
 */
const useTokenStore = defineStore('token', () => {
  // Token 响应式引用
  const token = ref(null)

  /**
   * 设置 token
   * @param {string} newToken - 新的 token 值
   */
  const setToken = (newToken) => {
    token.value = newToken
  }

  /**
   * 移除 token
   */
  const removeToken = () => {
    token.value = null
  }

  return { token, setToken, removeToken }
}, {
  /**
   * 持久化存储 --persist: true 选项，token 值会在页面刷新后继续保持。
   */
  persist: true
})

export default useTokenStore